concrete abstract diagram